Process control with a programmable controller involves the acquisition of input signals from various process sensors and the provision of output signals to controlled elements of the process. The process is thus controlled as a function of a stored program and of process conditions as reported by the sensors. Numerous and diverse processes are, of course, subject to such control, and sequential operation of industrial processes, conveyor systems, and chemical, petroleum, and metallurgical processes may all, for example, be advantageously controlled by programmable controllers.
Programmable controllers are of relatively recent development. A state of the art programmable controller comprises a central processing unit (CPU) made up, broadly, of a data processor for executing the stored program, a memory unit of sufficient size to store the program and the data relating to the status of the inputs and outputs, and one or more power supplies. In addition, an input/output (I/O) system provides the interface between the central processing unit and the input devices and controlled elements of the process being controlled.
Input/output systems have remained relatively unchanged since the advent of programmable controllers and are the feature most in need of improvement. While some advances have been made in I/O systems, the improvements have generally been along the same lines as those followed in the past. For example, U.S. Pat. No. 4,293,924 describes an I/O system wherein the density of the interface is increased. Another approach, illustrated by U.S. Pat. No. 4,247,882, has been to concentrate on improving the housing for the input/output system. With the increased complexity of the processes requiring control, and with a need for a greater exchange of information between the process and the central processor, however, other improvement approaches to I/O problems have been needed.
The conventional I/O system is composed of a number of individual I/O points, each one of which is devoted to either receiving the signal from an input device (e.g., a limit switch, pressure switch, etc.) or to providing a control signal to an output device (e.g., a solenoid, motor starter, etc.), depending on how the circuitry for the particular I/O point is configured. That is, an I/O point is dedicated to being either an input point or an output point and is not readily converted from one use to the other.
One problem with state of the art I/O systems (particularly when used with a complex process) is the high cost of installation. Typically, I/O modules, or circuit cards, are housed in card racks or cages. For control of an extensive or complex process, a large number of I/O points must be provided in each rack or cage. This necessarily entails a great deal of wiring expense (both for labor and for materials) since wires from all of the input and output devices must be brought into the I/O rack.
Additional problems then arise from use of a large I/O rack since it is frequently difficult to bring all of the wires into the rack to make the terminations. Although it is well-known to provide at least a portion of an I/O system in an enclosure or rack remote from the CPU (in an attempt to get the I/O closer to the process being controlled), these problems are still not overcome since there is a concentration of input/output wiring into a single (albeit remote) location. Further complications arise in dissipating heat in a concentrated I/O system and, for that reason, it is frequently necessary to operate an I/O system at less than its optimum rating.
Another problem with present I/O systems is that they are difficult to diagnose and troubleshoot--whether the malfunctions occur in the programmable controller, per se, or in the controlled process. Experience has shown that most on-line failures associated with a controller occur in the I/O system. The CPU portion is now highly refined, having benefited greatly from the advances in microprocessor technology and data processing, for example. When an electrical failure does occur, however, early detection and diagnosis of the precise nature of the problem is often critical. It is naturally desirable to detect a failed part through an advanced warning rather than after some part of the process is out of control.
With state of the art I/O systems, early detection or failures is difficult, and even when a failure is signaled its precise location and nature may not be apparent. In many cases it is even difficult to separate controller I/O failures from failed elements (e.g., motors, pushbuttons, etc.) in the process. Diagnostic features, particular for the controller I/O system, have simply been lacking. Improvements for diagnosing and preventing I/O system failures have therefore been eagerly sought.
The problem of diagnosing failures is at times made difficult because each I/O point is ordinarily protected by a fuse. Although the fuse protects the particular I/O module from overcurrent, frequently it adds to the problem. For example, mere transient current may blow the fuse, leaving the I/O point completely inoperative until the failed point can be located and the fuse replaced.
Somewhat related is the problem of exchanging diagnostic and control information between a controlling portion and a controlled portion of an I/O system. For example, it may occur that distributed I/O modules are used to configure an I/O system. In such case it is desirable to provide simple, reliable means and methods for exchanging such information.
Yet another drawback of conventional I/O systems is that (as was mentioned above) each I/O point functions strictly as an input point or as an output point. The same point may not readily be converted from one use to the other. The user of a programmable controller is therefore required to select input and output functions separately, based on an an initial estimate of needs. There is a decided lack of flexibility for unforeseen future needs. Moreover, since I/O points are typically available in groups (e.g., six or eight points per circuit card), there is frequently a large number of unused I/O points in a control system.
Accordingly, the principal object of the present invention is to provide an input/output system which overcomes these shortcomings of conventional I/O systems. More particularly, however, it is sought to provide an I/O system wherein each I/O point may be selected to operate either as an input point or as an output point.
In addition, it is sought to provide an input/output system wherein each I/O point is self-protected against overcurrent and overvoltage conditions without the use of fuses or circuit breakers and wherein each I/O point is continuously and automatically diagnosed for failure, both within the I/O system and within the controlled process, and wherein detected failures are identified and automatically reported. A further, specific object of the invention is to provide an I/O system which is simple and economical to wire and use and which provides individual I/O points in distributed groups, or modules, for location in close proximity to the process, or particular part of the process to be controlled. An additional object of the invention is to provide an I/O system which includes means for monitoring, controlling, and troubleshooting each I/O point independent of the conventional central processor unit. Still further objects, features, and advantages of the invention will appear from the ensuing detailed description.